package com.whcoding.beetlsql.service;

import com.whcoding.beetlsql.entity.OrmDeptVO;
import org.beetl.sql.core.engine.PageQuery;

import java.util.List;

/**
 * <p>
 * User Service
 * </p>
 *
 * @author whcoding
 * @create: 2022-05-26 11:46
 */
public interface OrmDeptService {
    /**
     * 新增部门
     *
     * @param deptVO 部门
     * @return 保存的用户
     */
    OrmDeptVO saveDept(OrmDeptVO deptVO);


    /**
     * 批量插入部门
     *
     * @param depts 部门列表
     */
    void saveDeptList(List<OrmDeptVO> depts);

    /**
     * 根据主键删除部门
     *
     * @param id 主键
     */
    void deleteDept(Long id);

    /**
     * 更新部门
     *
     * @param dept 部门
     * @return 更新后的部门
     */
    OrmDeptVO updateDept(OrmDeptVO dept);

    /**
     * 查询单个部门
     *
     * @param id 主键id
     * @return 部门信息
     */
    OrmDeptVO getDept(Long id);

    /**
     * 查询部门列表
     *
     * @return 部门列表
     */
    List<OrmDeptVO> getDeptList();

    /**
     * 分页查询
     *
     * @param currentPage 当前页
     * @param pageSize    每页条数
     * @return 分页用户列表
     */
    PageQuery<OrmDeptVO> getDeptByPage(Integer currentPage, Integer pageSize);


    /**
     * 模板查询
     */
    void templateDept();
}
